ListNode* swapPairs(ListNode* head) {
        ListNode *dummy = new ListNode(0);
        dummy->next = head;

        ListNode *t = dummy;

        while(t->next && t->next->next)
        {
            ListNode *p1 = t->next;
            ListNode *p2 = t->next->next;
            t->next = p2;
            p1->next = p2->next;
            p2->next = p1;
            t = p1;
        }
        return dummy->next;
    }